//============================================================================================
/**
 * @file	seedbed.c
 * @author	tamada. iwasawa
 * @date	2005.02.01 - 2008.08.
 * @brief	きのみ状態データ操作 常駐
 */
//============================================================================================

#include "common.h"
#include "savedata/savedata.h"

#include "seedbed_local.h"
#include "savedata/seedbed.h"

#include "gflib/system.h"
#include "system/pm_rtc.h"

//============================================================================================
//
//
//		セーブデータインターフェイス
//
//
//============================================================================================
//----------------------------------------------------------
/**
 * @brief	きのみ状態データサイズの取得
 * @return	int		きのみ状態データのサイズ
 */
//----------------------------------------------------------
int SEEDBED_GetWorkSize(void)
{
	return sizeof(SEEDBED) * SEEDBED_MAX;
}

//----------------------------------------------------------
/**
 * @brief	きのみ状態データ用メモリ確保
 * @param	heapID		確保するヒープの指定
 * @return	SEEDBED		きのみ状態データ全体へのポインタ
 */
//----------------------------------------------------------
SEEDBED * SEEDBED_AllocWork(u32 heapID)
{
	SEEDBED * sbed;
	sbed = sys_AllocMemory(heapID, sizeof(SEEDBED) * SEEDBED_MAX);
	return sbed;
}

//----------------------------------------------------------
/**
 * @brief	きのみ状態データ全体の初期化
 * @param	SEEDBED		きのみ状態データ全体へのポインタ
 */
//----------------------------------------------------------
void SEEDBED_Init(SEEDBED * sbed)
{
	int i;
	MI_CpuClear8(sbed, sizeof(SEEDBED) * SEEDBED_MAX);

	for (i = 0; i < SEEDBED_MAX; i++) {
		sbed[i].stat = SEEDSTAT_NOTHING;
		sbed[i].type = 0;
	}
#if (CRC_LOADCHECK && CRCLOADCHECK_GMDATA_ID_MISC)
	SVLD_SetCrc(GMDATA_ID_MISC);
#endif //CRC_LOADCHECK
}

//----------------------------------------------------------
/*
 *	@brief	木の実時間を現在時間で初期化
 */
//----------------------------------------------------------
void SEEDTIME_Reset(SEEDTIME* stm)
{
	GF_RTC_GetDateTime(&stm->date, &stm->time);

#if (CRC_LOADCHECK && CRCLOADCHECK_GMDATA_ID_MISC)
	SVLD_SetCrc(GMDATA_ID_MISC);
#endif //CRC_LOADCHECK
}

